[workspace]
members = [
    "domain",
    "usecase",
    "application",
    "in_memory_persistence",
    "rest",
    "telnet",
    "postgres_persistence"
]

[workspace.package]
version = "0.1.0"
edition = "2021"
authors = ["Ruslan Valiev"]
description = "Rust DDD Sample Project"

[package]
name = "rust_ddd_example_shop"
authors.workspace = true
description.workspace = true

version.workspace = true
edition.workspace = true
#build = "_build"

[package.metadata.winresource]
ProductVersion = "0.1.0"
ProductName = "Rust DDD Sample Project"
LegalCopyright = "Taksedo (C) 2023"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[workspace.dependencies]
derive-new = "0.6.0"
derive_more = { version = "1.0.0-beta.6", features = ["full"] }
actix-web = "4.3.1"
actix-cors = "0"
actix-service = "2.0.2"
structmap = "0.1.6"
structmap-derive = "0.1.6"
dotenvy = "0.15"
log = "0.4.18"
env_logger = "0"
derivative = "2.2.0"
erased-serde = "0.4.1"
serde_derive = "1.0.163"
serde = { version = "1.0.163", features = ["derive", "rc", "alloc"] }
serde_json = "1.0.96"
bigdecimal = { version = "0.4.2", features = ["serde"] }
mockall = "0.12.0"
fake = { version = "2.9.1", features = ["derive", "bigdecimal"] }
rand = "0.8.5"
rstest = "0.18.2"
time = { version = "0.3.21", features = ["default", "serde-well-known"] }
enum_access = "0.4.0"
enum_dispatch = "0.3.11"
smart-default = "0.7.1"
const_format = "0.2.30"
cargo-watch = "8.4.0"
lazy_static = "1.4.0"
diesel = { version = "2.1.4", features = ["postgres", "chrono", "numeric"] }# no backend features need to be enabled
diesel_migrations = "2.1.0"
diesel_logger = "0.3.0"
lapin = "2.2.1"
async-trait = "0.1.68"
futures-lite = "2.0.1"
testcontainers = "0.15.0"
testcontainers-modules = { version = "0", features = ["kafka", "postgres", "rabbitmq"] }
tokio = { version = "1.35.1", features = ["full"] }
tracing = "0.1.37"
tracing-subscriber = "0.3.18"
tracing-test = "0.2.4"
url = "2.3.1"
kafka = "0.10.0"
uuid = { version = "1.6.1", features = ["v4"] }
thiserror = "1.0.50"
assert-panic = "1.0.1"
prettytable-rs = "0.10.0"
nectar = "0"
tokio-util = { version = "0.7", default-features = false, features = ["codec"] }
futures-util = { version = "0.3", default-features = false, features = [
    "sink",
] }
utoipa-swagger-ui = { version = "6", features = ["actix-web"] }
utoipa = {version = "4.1.0", features = ["actix_extras", "chrono"]}

common = { path = "../common" , package = "rust_ddd_example_common" }
domain = { path = "domain" }
usecase = { path = "usecase" }
postgres_persistence = { path = "postgres_persistence" }
in_memory_persistence = { path = "in_memory_persistence" }
rest = { path = "rest" }
application = { path = "application" }
telnet = { path = "telnet" }

[dependencies]
application = { path = "application" }

[build-dependencies]
winresource = "0.1.15"
